//游戏中涉及到的计算公式，带*号的公式为临时公式
//泡面domo版本数值 属性计算公式 


//初始武将id
function chushiwujiangid() {
    return 2313111;
}

//首次单抽武将
function shoucidanchouwujiangid() {
    return 2445011;
}

//每次三消增加的条件
function sanxiaozengzhangtiaojian() {
    return 3;
}

//三消步数上限
function sanxiaobushushangxian() {
    return 10;
}

//世界等级获取排名名次
function shijiedengjipandingmingci() {
    return 20;
}

//挂机时长
/**（秒） */
function guajishichang() {
    return 45000;
}

//挂机时长最小时间
/**（秒） */
function guajishichangjianglizuixiaoshijian() {
    return 60;
}

//征战快速作战花费元宝
/** （num为当日已用次数），为0的情况下显示  “免费“ */
function zhengzhankuaisuzuozhanhuafei(num) {
    return Math.min((num) * 50, 50);
}

//征战快速作战收益时间
/**（秒） */
function kuaisuzuozhanshouyishijian() {
    return 7200;
}

//征战快速作战每日次数
function zhengzhankuaisuzuozhancishu() {
    return 5;
}

//武将背包上限初始
function wujiangbeibaoshangxianchushi() {
    return 150;
}

//武将背包上限最高购买次数
function wujiangbeibaoshangxiancishu() {
    return 150;
}

//武将背包每次增长个数
function wujiangbeibaoshangxianzengzhang() {
    return 5;
}

//武将背包每次增长花费
/** num为已购买次数 */
function wujiangbeibaoshangxianhuafei(num) {
    return 100 + (Math.floor(num / 10) * 50);
}

//物理防御减伤
/** attack1为所受到物理伤害，pdefense物防数值 */
function wufangjianshang(attack1, pdefense) {
    return Math.ceil(Math.max(attack1 - pdefense * 1.3, (attack1 * 0.1)));
}

//法术防御减伤
/** attack2为所受到法术伤害，sefense法防数值 */
function fafangjianshang(attack2, sefense) {
    return Math.ceil(Math.max(attack2 - sefense * 1.3, (attack2 * 0.1)));
}

//暴击伤害
/** attack为伤害（物理或者法术）数值 */
function baoji(attack) {
    return attack * 1.5;
}

//暴击概率
/** herodata表中抗暴数值，antiriot为抗暴数值，strikewei为暴击数值 */
function baojilv(antiriot, strike) {
    return Math.max((strike - antiriot), 1000);
}

//命中概率
/** 为herodata表中闪避数值，dodge对方闪避数值，fit自身命中数值 */
function mingzhong(dodge, fit) {
    return Math.max((fit - (dodge * 0.92)), 1000);
}

//控制buff概率
/** probability为skill表中控制数值，control对方控制数值，resist自身扛控数值  */

function kongzhizengliang(control, resist, probability) {
    return Math.max((probability + (control - resist)), 0);
}

//爆伤增伤百分比
/** 为herodata表中控制数值，burstdrop对方爆伤减免数值，burstdps自身爆伤数值 */
function baoshang(burstdrop, burstdps) {
    return Math.max((burstdrop - (burstdps * 0.92)) / 10000, 0.1);
}

//物理减伤
/** 为herodata表中数值，burstdrop对方物理免伤数值，pdefenseup自身物理增伤数值 */
function wushangjianmian(burstdrop, pdefenseup) {
    return Math.max((pdefenseup - (burstdrop * 0.92)) / 10000, 0.1);
}

//法术减伤
/** 为herodata表中数值，sefenseup对方法术免伤数值，pdefenseup自身法术增伤数值 */
function fashangjianmian(sefenseup, pdefenseup) {
    return Math.max((sefenseup - (pdefenseup * 0.92)) / 10000, 0.1);
}

//治疗增量
/** 为herodata表中数值，therapy对方受疗，treatment自身治疗 */
function zhiliaozengliang(therapy, treatment) {
    return (therapy + treatment) / 10000;
}

//战力计算
/** 攻击、物防、法防、生命、暴击、抗暴、暴伤、爆伤减免、命中、闪避、控制、抗控、初始怒气、治疗、受疗、物攻提升、法攻提升、物理减伤、法术减伤、技能等级 */
function zhandouli(attack, pdefense, sefense, life, strike, antiriot, burstdps, burstdrop, fit, dodge, control, resist, initialanger, treatment, therapy, pdefenseup, sefenseup, pdefenseguard, efenseguard, skilldps) {
    return Math.ceil(attack * 1.5 + pdefense * 3 + sefense * 3 + life * 0.8 + strike * 0.1 + antiriot * 0.1 + (burstdps - 15000) * 0.1 + burstdrop * 0.1 + (fit - 9900) * 0.1 + dodge * 0.1 + control * 0.1 + resist * 0.1 + initialanger * 0.1 + treatment * 0.1 + therapy * 0.1 + pdefenseup * 0.1 + sefenseup * 0.1 + pdefenseguard * 0.1 + efenseguard * 0.1 + skilldps);
}

//武将升级攻击属性提升
/** lv为武将等级，attack为herograde表攻击提升参数 */
function shengjigongjitisheng(lv, attack) {

    if (lv <= 100) {
        return lv * attack;
    } else if (lv <= 205) {
        return (100 * attack) + ((lv - 100) * (attack * 3));
    } else if (lv <= 250) {
        return (100 * attack) + (105 * attack * 3) + ((lv - 205) * (attack * 6));
    } else if (lv <= 350) {
        return (100 * attack) + (105 * attack * 3) + (45 * attack * 6) + ((lv - 250) * (attack * 9));
    }
    return (100 * attack) + (105 * attack * 3) + (45 * attack * 6) + ((lv - 250) * (attack * 9));
}

//武将升级物防属性提升
/** lv为武将等级，pdefense为herograde表物防提升参数 */
function shengjiwufangtisheng(lv, pdefense) {

    if (lv <= 100) {
        return lv * pdefense;
    } else if (lv <= 205) {
        return (100 * pdefense) + ((lv - 100) * (pdefense * 3));
    } else if (lv <= 250) {
        return (100 * pdefense) + (105 * pdefense * 3) + ((lv - 205) * (pdefense * 6));
    } else if (lv <= 350) {
        return (100 * pdefense) + (105 * pdefense * 3) + (45 * pdefense * 6) + ((lv - 250) * (pdefense * 9));
    }
    return (100 * pdefense) + (105 * pdefense * 3) + (45 * pdefense * 6) + ((lv - 250) * (pdefense * 9));
}

//武将升级法防属性提升
/** lv为武将等级，sefense为herograde表物防提升参数 */
function shengjifafangtisheng(lv, sefense) {

    if (lv <= 100) {
        return lv * sefense;
    } else if (lv <= 205) {
        return (100 * sefense) + ((lv - 100) * (sefense * 3));
    } else if (lv <= 250) {
        return (100 * sefense) + (105 * sefense * 3) + ((lv - 205) * (sefense * 6));
    } else if (lv <= 350) {
        return (100 * sefense) + (105 * sefense * 3) + (45 * sefense * 6) + ((lv - 250) * (sefense * 9));
    }
    return (100 * sefense) + (105 * sefense * 3) + (45 * sefense * 6) + ((lv - 250) * (sefense * 9));
}

//武将升级生命属性提升
/** lv为武将等级，life为herograde表物防提升参数 */
function shengjishengmingtisheng(lv, life) {

    if (lv <= 100) {
        return lv * life;
    } else if (lv <= 205) {
        return (100 * life) + ((lv - 100) * (life * 3));
    } else if (lv <= 250) {
        return (100 * life) + (105 * life * 3) + ((lv - 205) * (life * 6));
    } else if (lv <= 350) {
        return (100 * life) + (105 * life * 3) + (45 * life * 6) + ((lv - 250) * (life * 9));
    }
    return (100 * life) + (105 * life * 3) + (45 * life * 6) + ((lv - 250) * (life * 9));
}

//竞技场每日免费次数挑战
function leitaimeirimianfeicishu() {
    return 5;
}

//竞技场花费元宝购买挑战道具价格
function leitaitiaozhandaojugoumaihuafei() {
    return 30;
}

//竞技场刷新冷却时间
/** （秒） */
function leitaishuaxinlengque() {
    return 3;
}

//竞技场初始分数
function leitaichushifenshu() {
    return 1000;
}

//竞技场跳过战斗条件
function jingjichangtiaoguozhandoutiaojian() {
    return 20;
}


//竞技场赛季周期
/** （天） */
function leitaisaijizhouqi() {
    return 7;
}

//竞技场积分计算公式
/** （rankapex为arenadate表中参数，arank为挑战者，brank为被挑战者），cons为连胜场次   被挑战胜利不影响积分   */
function leitaijifenjisuan(rankapex, arank, brank, cons) {
    return rankapex * (1 - 1 / (1 + Math.pow(10, ((brank - arank + cons * 50) / 400)))) + 5;
}

//竞技场挑战失败积分
function leitaitiaozhanshibaijifenjisuan() {
    return 5;
}


//剿匪每日刷新花费
/** （num为当日已用次数），为0的情况下显示  “免费“ */
function jiaofeishuaxinmianfeicishu(num) {

    if (num < 10) {
        return 0;
    }
    return Math.min(num - 1 * 5, 30);
}

//武将商店刷新花费武将精魄数量
function wujiangshangdianshuaxinhuafei() {
    return 500;
}

//武将商店刷新商品数量上限
function wujiangshangdianshangpinshu() {
    return 10;
}

//夺宝积分商店刷新花费武将精魄数量
function duobaojifenshangdianshuaxinhuafei() {
    return 500;
}

//夺宝积分商店刷新商品数量上限
function duobaojifenshangdianshangpinshu() {
    return 12;
}

//夺宝积分商店免费刷新增长时间
/** （秒） */
function duobaojifenshangdianmianfeicishu() {
    return 7200;
}


//兵法商店刷新花费武将精魄数量
function bingfashangdianshuaxinhuafei() {
    return 500;
}

//兵法商店刷新商品数量上限
function bingfashangdianshangpinshu() {
    return 12;
}

//兵法商店免费刷新增长时间
/** （秒） */
function bingfashangdianmianfeicishu() {
    return 7200;
}

//兵法商店刷新次数上限
function bingfashangdianshuaxinshangxian() {
    return 20;
}

//神兵升级攻击属性提升
/** weapongrade表中attack为攻击基础attackup攻击成长，exp为当前经验值 */
function shenbingshengjigongji(attack, attackup, exp) {
    return attack + exp * attackup;
}

//神兵升级生命属性提升
/** weapongrade表中life为血量基础lifeup血量成长，exp为当前经验值 */
function shenbingshengjishengming(life, lifeup, exp) {
    return life + exp * lifeup;
}

//神兵铸魂升级攻击属性提升
function shenbingzhuhunshengjigongji() {
    return 200;
}

//神兵铸魂升级生命属性提升
function shenbingzhuhunshengjishengming() {
    return 2000;
}

//修炼塔每日挑战次数
function xiuliantameiritiaozhancishu() {
    return 2;
}

//修炼塔购买次数花费元宝数
/** num为当日扫荡次数 */
function xiuliantasaodanghuafei(num) {

    return 20 + num * 10;
}

//修炼塔每日购买次数
function xiuliantameirigoumaicishu() {
    return 3;
}


//跨服聊天花费元宝数
function kuafuliaotianhuafeiyuanbao() {
    return 10;
}

//跨服聊天等级限制
function kuafuliaotiandengji() {
    return 27;
}

//跨服聊天VIP等级限制
function kuafuliaotianVipLevel() {
    return 3;
}


//联盟boss每日初始挑战次数
function lianmengbosschushicishu() {
    return 3;
}

//联盟boss每日购买次数
function lianmengbossgoumaicishu() {
    return 4;
}

//联盟boss每日购买花费元宝数
/** num为当日购买的次数 */
function lianmengbossgoumaihuafei(num) {
    return (num + 1) * 20;
}

//联盟技能重置花费元宝数额
/** num为本购买的次数 */
function lianmengjinengchongzhihuafei() {
    return 2000;
}

//改名花费元宝个数
function gaiminghaufei() {
    return 500;
}

//积分招募VIP限制等级
function jifenzhaomuvip() {
    return 1;
}

//创建联盟花费元宝数
function chuangjianlianmengyuanbao() {
    return 100;
}

//创建联盟VIP等级
function chuangjianlianmengvip() {
    return 2;
}

//退出联盟再次加入新联盟时间
/** 小时 */
function tuichuzaishengqingshijian() {
    return 12;
}

//联盟招募花费元宝
function lianmengzhaomuhuafei() {
    return 15;
}

//联盟招募活跃时间
/** 秒*/
function zhaomuhuoyueshijian() {
    return 1800;
}


//联盟技能升级花费1
/** unionskillupcost表中begincostnum1为道具1消耗初始，costnum1为道具1消耗成长，lv为等级 */
function lianmengjinengshengjihuafei1(begincostnum1, costnum1, lv) {
    return begincostnum1 + costnum1 * lv;
}

//联盟技能升级花费2
/** unionskillupcost表中begincostnum2为道具2消耗初始，costnum2为道具2消耗成长，lv为等级 */
function lianmengjinengshengjihuafei2(begincostnum2, costnum2, lv) {
    return begincostnum2 + costnum2 * lv;
}


//联盟技能花费1返还比例
function lianmengjinengshengjifanhuan1() {
    return 100;
}

//联盟技能花费2返还比例
function lianmengjinengshengjifanhuan2() {
    return 100;
}


//日常副本每日免费次数
function richangfubenmianfeicishu() {
    return 2;
}

//日常副本额外数花费元宝数
function richangfubenewaicishuhuafei() {
    return 50;
}


//好友数上限
function haoyoushangxian() {
    return 100;
}


//过关斩将复活花费元宝数
/** num为当日复活次数 */
function guoguanzhanjiangfuhuofuhuohuafeiyuanbao(num) {
    return 100;
}

//排行榜每日膜拜次数
function paihangbnagmeirimobaicishu() {
    return 5;
}


//武将重生每日使用次数
function wujiangchongshengcishu() {
    return 6;
}

//武将重生花费元宝
/** lv为当前武将等级 */
function wujiangchongshenghuafeiu(lv) {
    if (lv <= 100) {
        return 0;
    } else {
        return 8;
    }
    ;
}

//武魂殿挑战冷却时间分钟数
function wuhundiantiaozhanlengquefenzhong() {
    return 5;
}

//神将试炼每日充值后最高关卡减去数
function shenjiangshilianchushi() {
    return 10;
}

//联盟战斗等级条件
function lianmengzhandengjitiaojian() {
    return 2;
}

//联盟战人数条件
function lianmengzhanrenshutiaojian() {
    return 10;
}

//联盟站挑战次数
function lianmengzhantiaozhancishu() {
    return 2;
}

//联盟站BUFF等级上限
function lianmengzhanbuffdengjishangxian() {
    return 15;
}

//天梯争雄购买次数元宝花费
/** num为当日购买的次数 */
function tiantizhengxionggoumaicishu(num) {
    return (num + 1) * 50;
}

//七擒孟获挑战次数
function menghuotiaozhancishu() {
    return 2;
}

//七擒孟获挑战购买次数
function menghuotiaozhangoumaicishu() {
    return 2;
}

//奇袭乌巢每轮治疗符使用次数
function wuchaozhiliaofucishu() {
    return 5;
}

//奇袭乌巢每轮毒药使用次数
function wuchaoduyaocishu() {
    return 5;
}

//奇袭乌巢回退关卡
function wuchaohuituiguanka() {
    return 5;
}

//天下第一战力榜单获得资格
function tianxiadiyipaimingzige() {
    return 160;
}

//天下第一积分赛初始分数
/** rank为本组战力排名 */
function tianxiadiyichushijifen(rank) {
    return Math.max((1000 - rank), 10);
}

//天下第一积分获得积分规则
/** active为主动一方当前积分 passive为被动一方当前积分 */
function tianxiadiyijifenguize(active, passive) {
    if (active >= passive) {
        return 10;
    }
    return Math.ceil(10 + Math.min((passive * 0.01), 50));
}

//天下第一小组赛每日被挑战扣分上限次数
function tianxiadiyikoufenshangxian() {
    return 10;
}

//天下第一积分赛每日可挑战次数
function tianxiadiyijifentiaozhancishu() {
    return 10;
}

//天下第一积分赛刷新对手花费元宝
/** num为当日刷新次数，值为0显示 “免费”*/
function tianxiadiyishuaxinduishouhaufei(num) {
    return Math.min(Math.max((num - 3) * 2, 0), 10);
}


//火烧赤壁每日挑战次数
function chibimeiritiaozhancishu() {
    return 20;
}

//火烧赤壁购买次数
function chibimeirigoumaicishu() {
    return 2;
}

//火烧赤壁购买花费元宝
function chibimeirigoumaihuafei() {
    return 50;
}


//速战功能VIP条件
function suzhanvip() {
    return 3;
}


//速战功能等级条件
function suzhandengjitiaojian() {
    return 14;
}


//周卡种树兑换比例
function zhoukazhongshubili() {
    return 1;
}

//神魔抽卡替换心仪武将花费
/** 首次免费 */
function shenmchoukaxuanzehuafei() {
    return 200;
}





